package com.tqjc.system.C24012.core.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tqjc.system.C24012.common.constant.ConfigConstants;
import com.tqjc.system.C24012.common.entity.BO.ConfigInfoBO;
import com.tqjc.system.C24012.common.entity.SysConfigEntity;
import com.tqjc.system.C24012.core.dao.ConfigMapper;
import com.tqjc.system.C24012.core.service.ConfigService;
import com.tqjc.system.C24012.core.service.SysBusinessService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

/**
 * @Author: 86195
 * @CreateTime: 2024-06-27  17:11
 * @Description: TODO
 * @Version: 1.0
 */
@Service
@Slf4j
public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, SysConfigEntity> implements ConfigService {


    @Override
    public SysConfigEntity getConfigById(String configId) {

        return baseMapper.selectOne(new LambdaQueryWrapper<SysConfigEntity>().eq(SysConfigEntity::getConfigId,configId)
                .eq(SysConfigEntity::getConfigStatus, ConfigConstants.CONFIG_STATUS_EFFECTIVE));
    }

    @Override
    public void updateConfigVal(String configId, String configType,String configVal) {
        baseMapper.update(null,new LambdaUpdateWrapper<SysConfigEntity>()
                .eq(SysConfigEntity::getConfigId,configId).eq(SysConfigEntity::getConfigType,configType)
                .set(SysConfigEntity::getConfigValue,configVal));
    }

    @Override
    public IPage<SysConfigEntity> index(Page<SysConfigEntity> pageEntity, ConfigInfoBO configInfoBO) {
        LambdaQueryWrapper<SysConfigEntity> queryWrapper = new LambdaQueryWrapper<SysConfigEntity>()
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigId()), SysConfigEntity::getConfigId, configInfoBO.getConfigId())
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigValue()), SysConfigEntity::getConfigValue, configInfoBO.getConfigValue())
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigType()), SysConfigEntity::getConfigType, configInfoBO.getConfigType())
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigStatus()), SysConfigEntity::getConfigStatus, configInfoBO.getConfigStatus());
        return baseMapper.selectPage(pageEntity,queryWrapper);
    }
}
